﻿using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;

namespace DS.SludgeEngine.Base
{
   
    public interface ICameraManager
    {
        #region Public Methods
        void LookAt(Vector3 target);
        void Move(float dx, float dy, float dz);
        void Perspective(float fovx, float aspect, float znear, float zfar);
        void Rotate(float headingDegrees, float pitchDegrees, float rollDegrees);
        void Zoom(float zoom, float minZoom, float maxZoom);
        #endregion

        #region Properties

   

       


        /// <summary>
        /// Property to get the camera's viewing direction.
        /// </summary>
        Vector3 ViewDirection
        {
            get;
        }




        /// <summary>
        /// Property to get the camera's concatenated view-projection matrix.
        /// </summary>
        Matrix ViewProjectionMatrix
        {
            get;
        }

        /// <summary>
        /// Property to get the camera's local x axis.
        /// </summary>
        Vector3 XAxis
        {
            get;
        }

        /// <summary>
        /// Property to get the camera's local y axis.
        /// </summary>
        Vector3 YAxis
        {
            get;
        }

        /// <summary>
        /// Property to get the camera's local z axis.
        /// </summary>
        Vector3 ZAxis
        {
            get;
        }

        #endregion
    }
}
